{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2765f646",
   "metadata": {},
   "source": [
    "# 切比雪夫模拟滤波器\n",
    "\n",
    "设计一个低通切比雪夫I型滤波器，其通带截止频率f_p=3000Hz，通带最大衰减R_p=2dB，阻带截止频率f_s=6000Hz，阻带最小衰减A_s=30dB。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "91a27f8e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#导入使用的库\n",
    "import numpy as np\n",
    "from scipy import signal;from math import *\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import MaxNLocator,MultipleLocator\n",
    "\n",
    "#滤波器参数\n",
    "fp = 3000;fs = 6000 \n",
    "Rp = 2;As = 30\n",
    "\n",
    "#计算所需的切比雪夫滤波器阶数\n",
    "N, Wn = signal.cheb1ord(2*pi*fp,2*pi*fs,Rp,As,True) \n",
    "\n",
    "#计算切比雪夫模拟滤波器的系统函数和频率响应\n",
    "b, a = signal.cheby1(N,Rp,Wn,'low',True) \n",
    "w, h = signal.freqs(b, a,np.logspace(3, 5, 1000))\n",
    "Hw = 20*np.log10(abs(h))\n",
    "\n",
    "#绘制滤波器的幅度响应\n",
    "fig,ax = plt.subplots();ax.semilogx(w/(2*pi),Hw)\n",
    "ax.grid(which = 'major',axis = 'both')\n",
    "ax.grid(which = 'minor',ls = '--')\n",
    "ax.set_title('切比雪夫模拟低通滤波器');ax.set_xlabel('frequency')\n",
    "ax.set_xlabel('frequency/Hz')\n",
    "ax.set_ylabel(r'$ 20log_{10}| H ( \\omega ) | $')\n",
    "ax.yaxis.set_major_locator(MaxNLocator(10))\n",
    "ax.yaxis.set_minor_locator(MultipleLocator(2))\n",
    "plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签\n",
    "plt.rcParams['axes.unicode_minus'] = False #用来显示负号\n",
    "fig.savefig('./cheby.png',dpi=500)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8c446174",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
